/**
 * 
 */
package command.actions;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import command.Command;

import beans.Panier;
import beans.Produit;

/**
 * @author Pedro
 * 
 */
public class RetirerProduit implements Command {

	/*
	 * (non-Javadoc)
	 * 
	 * @see command.Command#execute(javax.servlet.http.HttpServletRequest,
	 * javax.servlet.http.HttpServletResponse)
	 */
	@Override
	public String execute(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		System.out.println("command:" + this.getClass());

		/**
		 * stockage des produits en cours d'achat
		 */
		Panier monPanier;

		// récup session
		HttpSession session = request.getSession(false);

		// session existe ?
		if (session != null) {

			// récup du panier s'il existe
			// if (session.getAttribute("panier") != null) {
			monPanier = (Panier) session.getAttribute("panier"); //mis en session au démarrage de celle-ci (listener)
			// } else {
			// sinon création du panier vide
			// monPanier = new Panier();
			// }
			// retire un type de produit du panier (marche car methode
			// equals de Produit définie)
			// idProduit doit être renseigné
			// si fruit sélectionné on récupère son id (value de l'option du
			// select)
			String idProduit = request.getParameter("produit");

			// on devrait tester si le paramètre est bien non nul et
			// numérique...
			int quantite = Integer.parseInt(request.getParameter("quantite"));

			if (idProduit != null) {
				monPanier.remove(new Produit(Integer.valueOf(idProduit)),
						quantite);
			}
			// panier vide en remis en session
			session.setAttribute("panier", monPanier);
			// affichage de la vue
			return ("/magasin?cmd=id");
		}

		// retour au login
		return ("/magasin?cmd=doLogin");
	}

}
